不同的軟體支援不同的作業系統,因為我所使用的軟體都是免付費的,所以限制會稍多一點。但是找到可以被我們使用的環境才是我們的目的!
寫完了 Verilog 之後,我們通常會透過 FPGA 來檢測輸入與輸出是否符合我們的預期。因此我們會使用 Intel 開發的 Quartus II 這個軟體來撰寫、編譯、燒錄到 FPGA 中。要特別注意的是這個軟體只支援 Windows 作業系統!
那如果你和我一樣是使用 MacOS 該如何處理 Verilog 程式碼呢?
我們分幾個步驟來處理:
我會使用簡單的文字編輯器來撰寫程式碼,如果你希望程式碼中的關鍵字可以被上色,那麼 Visual Studio Code (簡稱 VSCode) 會很適合你的!當然,你要記得在 VSCode 中下載 Verilog 的外掛!
Icarus Verilog (簡稱 iverilog) 是一個很不錯的編譯器,MacOS 使用者可以透過 terminal 輸入指令
brew install icarus-verilog
來下載這個編譯器。
使用這個編譯器的方式很簡單,假設我們有一個 Verilog 檔案叫做 test.v ,那在編譯的時候我們就輸入以下指令
// 編譯後,輸出檔名為預設的 a.out
iverilog test.v
// 編譯後,輸出檔名為 test
iverilog -o test test.v
編譯後,會產生一個輸出檔,假設我們的輸出檔案叫做 test ,那麼執行時,我們可以輸入以下指令
vvp test
因為 Verilog 作為硬體描述語言,因此單純的執行是沒有任何意義的。通常我們會透過測試檔 (testbench) 來測試結果是否符合我們的要求。在測試檔中,我們會加入這兩行給編譯器看指令,意思是我們要產生這個電路的波形圖
$dumpfile("test.vcd");
$dumpvars(0, module);
當我們再次編譯和執行,我們可以在資料夾中看到 test.vcd
這個檔案。藉由這個檔案我們可以看到電路在不同輸入、不同狀態下,產生的輸出是什麼。這時候的執行才稱得上是有意義的啊!